const { tab, userList } = require('./mock')
const bodyParser = require('body-parser')
const multipart = require('connect-multiparty');
const multipartMiddleware = multipart();
const OSS = require('ali-oss')
const path = require("path")
module.exports = app => {
	app.use(bodyParser.json())
	app.get('/api/tab', (req, res) => {
		res.send({
			code: 200,
			data: tab
		})
	})

	app.get('/api/list/:id', (req, res) => {
		const { id } = req.params;

		let item;

		tab.forEach(v => {
			const s = v.list.find(v => {
				return v.id === id
			})
			if (s) item = s
		})
		if (item)
			res.send({
				code: 200,
				data: item
			})
		else
			res.send({
				code: 404,
				data: null
			})
	})


	app.post('/api/login', (req, res) => {
		const { username, password } = req.body;
		const user = userList.find(v => v.username === username && v.password === password)
		if (user) {
			res.send({
				code: 200,
				data: {
					nickname: user.nickname,
					avator: user.avator,
					id: user.id,
					token: 'fwkkdmqw;dqwdqlwd'
				},
				message: '登录成功'
			})
		} else {
			res.send({
				code: 401,
				data: null,
				message: '账户密码错误, 请重新输入'
			})
		}
	})

	app.post('/api/upload', multipartMiddleware, (req, res) => {
		const { id } = req.body;
		// 接收发送过来的文件
		// req.files.source.originalFilename
		// req.files.source.path



		const client = new OSS({
			// yourregion填写Bucket所在地域。以华东1（杭州）为例，Region填写为oss-cn-hangzhou。
			region: 'oss-cn-hangzhou',
			// 阿里云账号AccessKey拥有所有API的访问权限，风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维，请登录RAM控制台创建RAM用户。
			accessKeyId: 'LTAI5tGwduDvST4X1bT8HDH7',
			accessKeySecret: 'BnE7MsdXYuoR2xDXGxagHpZv3zDAnc',
			// 填写Bucket名称。
			bucket: '2005a-10',
		});


		try {
			// 填写OSS文件完整路径和本地文件的完整路径。OSS文件完整路径中不能包含Bucket名称。
			// 如果本地文件的完整路径中未指定本地路径，则默认从示例程序所属项目对应本地路径中上传文件。
			const result = client.put(
					req.files.source.originalFilename, 
					path.normalize(req.files.source.path
			)
				// 自定义headers
				//,{headers}
			);
			result.then(resp => {
				// 后端保存 上传图像路径
				const user = userList.find(v => v.id === id);
				if(user) user.avator = resp.url
				res.send({
					code: 200,
					data: resp,
					message: 'OK'
				})
			})
		} catch (e) {
			console.log(e);
		}

	})
}